<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Äänestäjä</title>
</head>
<body>
    <?php include "header.php";include "yhteys.php"; 
	    /*taulukko, johon haetaan uurnat*/
	    $uurnat = array();
		/*taulukko, johon haetaan ehdokkaat*/
		/*syotettavat tiedot on ok*/
		$tiedotOK = true;
		$ehdokkaat = array();
        if (isset($_POST['tallenna']))
        {       
            // suojataan merkkijonot ennen kyselyn suorittamista
            $eNimi = pg_escape_string($_POST['etunimi']);
            $sNimi = pg_escape_string($_POST['sukunimi']);
            $oNumero = intval($_POST['onro']);
			$ehdokas = intval($_POST['ehdokas']);
			//etunimi ei voi olla tyhja
			
			if ($eNimi == "")
			{
			    echo "Anna etunimi!\n";
				$tiedotOK = false;
			}
			/*katsotaan etta nelja numeroa*/
			$pituus = strlen($oNumero);
			if ($pituus != 4) {
			  echo "Opiskelijanumerossa tulee olla neljä numeroa";
			  $tiedotOK = false;
            }
			/*tarkistetaan ettei kyseinen opiskelija ole jo aanestanyt*/
		    /*haetaan numerot tietokannasta*/
            $tulos = pg_query("SELECT onro FROM aanestaja");
                if (!$tulos) {
                    echo "Virhe kyselyssä.\n";
                    exit;
                }

            while ($row = pg_fetch_row($tulos)) {
			    if ($row[0] == $oNumero) {
				    echo "Kyseinen opiskelija on jo äänestänyt";
					$tiedotOK = false;
				    break;
				}
		        
            }	
			if($tiedotOK) {
		        try {			
			        /*haetaan aluksi nimea vastaavan uurnan id*/
				    $nimi = pg_escape_string($_POST['uurna']);
				    $tulos = pg_query("SELECT id FROM vaaliuurna WHERE nimi = '$nimi'");								
				    if (!$tulos) {
                        echo "Virhe kyselyssä.\n";
                        exit;
		            }   
				    /*id numero uurna muuttujaan*/
                    while ($row = pg_fetch_row($tulos)) {
		            $uurna = $row[0];
                    }				
                    /*lisataan äänestäjä tietokantaan*/
					
                        $kysely = pg_query ("INSERT INTO aanestaja VALUES ($oNumero, '$eNimi', '$sNimi', $uurna)");
					    /*virheellinen opiskelijanumero*/
					    if(!kysely) {
					        echo "Kyseinen opiskelija on jo äänestänyt";
					        exit;
					    }
						
					 
				    /*jos aani on hylatty tai tyhja ei tarvitse jatkaa*/
				    if ($ehdokas != 0 && $ehdokas != -1)
                    {				
				        /*katsotaan onko ehdokasta jo aanestetty kyseisella uurnalla*/
                        $testaus = pg_query("SELECT ehdokas FROM aanet WHERE vaaliuurna = $uurna AND ehdokas = $ehdokas");
                        $rivi = pg_fetch_row($testaus);
                        $tulos = $rivi[0];
				        /*ei ole viela aanestetty talla uurnalla*/
				        echo $tulos;
				        var_dump($tulos);
				        if($tulos == "") {
                            /*lisataan ääni tietokantaan*/
					        $aanestys = pg_query ("INSERT INTO aanet VALUES (1, $ehdokas, $uurna)");
							echo "Tiedot tallennettiin onnistuneesti";
				        /*on aanestetty talla uurnalla*/	
                        } else {
				            /*haetaan äänten lkm*/
					        $haku = pg_query("SELECT lukumaara FROM aanet WHERE vaaliuurna = $uurna AND ehdokas = $ehdokas");
                            $rivi = pg_fetch_row($haku);
                            $lkm = $rivi[0];
					        /*lisataan yksi aani lisaa*/
					        $lkm++;
                            /*paivitetaan taulu*/
                            $paivitys = pg_query("UPDATE aanet SET lukumaara = $lkm WHERE vaaliuurna = $uurna AND ehdokas = $ehdokas");
                            echo "Tiedot tallennettiin onnistuneesti";							
                        }
                    } else {
                        echo "Tiedot tallennettiin onnistuneesti";
                    }				

			    } catch (PDOException $e) {
                    print "Error!: " . $e->getMessage() . "<br/>";
                    die();
                }
            }	        	
        }
        /*haetaan uurnat tietokannasta*/
        $tulos = pg_query("SELECT nimi FROM vaaliuurna");
        if (!$tulos) {
        echo "Virhe kyselyssä.\n";
        exit;
        }

        while ($row = pg_fetch_row($tulos)) {
		$uurnat[] = $row[0];
        }
        /*haetaan ehdokkaat tietokannasta vaalinumeroina*/
        $tulos = pg_query("SELECT vaalinumero FROM ehdokas");
        if (!$tulos) {
        echo "Virhe kyselyssä.\n";
        exit;
        }

        while ($row = pg_fetch_row($tulos)) {
		$ehdokkaat[] = $row[0];
        }		

        		
	?> 
<h2>Äänestäjän lisääminen</h2>
<form name="input" action="" method="post">
Etunimi:&nbsp;&nbsp;&nbsp; <input type="text" name="etunimi" />
<br/>
Sukunimi:&nbsp;&nbsp;&nbsp; <input type="text" name="sukunimi" />
<br/>
Onro: <input type="text" name="onro" />
<br/>
Uurna:

<?php 
/*taytetaan valittavana olevat uurnat pudotusvalikkoon*/
echo "<select name=\"uurna\">";

   	/*haetaan uurnat pudotusvalikkooon*/
	for ($i = 0; $i < sizeof($uurnat); $i++)
    {
	    echo "<option value=\"$uurnat[$i]\">$uurnat[$i]</option>\n";

    }  
	echo "</select>";

 ?>
<br/>
Äänestys
<?php
/*taytetaan valittavana olevat ehdokkaat pudotusvalikkoon*/
echo "<select name=\"ehdokas\">";

   	/*mukaan mahdollisuus aanestaa tyhjaa ja hylatyt aanet*/
    /*tyhjä arvo lähetetään nollana*/
	echo "<option value=\"0\">Tyhjä</option>\n";
	/*hylätty lähetetään -1*/
	echo "<option value=\"-1\">Hylätty</option>\n";
	for ($i = 0; $i < sizeof($ehdokkaat); $i++)
    {
	    echo "<option value=\"$ehdokkaat[$i]\">$ehdokkaat[$i]</option>\n";

    }  
	echo "</select>";

 ?>


<br/>

<br/>
<input type="hidden" name="tallenna" value="jep" />
<input type="submit" value="Suorita kysely" />
<br/>
</form> 
<br/>
<h2>Äänestäneet:</h2>
<?php 
$tulos = pg_query("SELECT * FROM aanestaja");
if (!$tulos) {
  echo "Virhe kyselyssä.\n";
  exit;
}

while ($row = pg_fetch_row($tulos)) {
  echo "Nimi: $row[1] $row[2] <br/>Opiskelijanumero: $row[0]<hr/> ";
  echo "<br />\n";
}

?>
<h2>Ääntenlaskenta</h2>
<?php 
$tulos = pg_query("SELECT * FROM aanet");
if (!$tulos) {
  echo "Virhe kyselyssä.\n";
  exit;
}

while ($row = pg_fetch_row($tulos)) {
  echo "Ehdokas: $row[1] <br/>Lukumäärä: $row[0]<br/> Uurna: $row[2]<hr/>";
  echo "<br />\n";
}

?>
		       

</body>
</html>